﻿using System;
using System.Collections.Generic;
using Acaweb.Data.Contracts;
using Acaweb.Model.Entities;
using Acaweb.Model.Entities.DatosCompuestos;
using Spring.Transaction.Interceptor;

namespace Acaweb.Data.Dao.NHibernate
{
    public class InteresadosDao : HibernateDao<Interesados, int>, IInteresadosDao
    {
        [Transaction(ReadOnly = true)]
        public IList<Interesados> GetAll()
        {
            return GetAll<Interesados>();
        }

        public IList<Interesados> GetByPlanesEstudios(int PlanEstudio)
        {
            return this.Session.QueryOver<Interesados>().Where(t => t.InteresadoPk.CodigoPlanEstudio == PlanEstudio).List();
        }

        public IList<Interesados> GetByPeriodoAcademico(PeriodoAcademico PeriodoAcademico)
        {
            return this.Session.QueryOver<Interesados>().Where(t => t.InteresadoPk.PeriodoAcedemico == PeriodoAcademico).List();
        }

        public IList<Interesados> GetByPlanesEstudios(int PlanEstudio, PeriodoAcademico PeriodoAcademico)
        {
            return this.Session.QueryOver<Interesados>().Where(t => t.InteresadoPk.PeriodoAcedemico == PeriodoAcademico && t.InteresadoPk.CodigoPlanEstudio == PlanEstudio).List();
        }

        public IList<Interesados> GetByIdentificacion(Identificacion Identificacion)
        {
            return this.Session.QueryOver<Interesados>().Where(t => t.InteresadoPk.Identificacion == Identificacion).List();
        }
    }
}